Within the past decade, the advent of world-wide electronic communications systems has enhanced the way in which people can send and receive information. In particular, the capabilities of real-time video and audio systems have greatly improved in recent years. In order to provide services such as video-on-demand and video conferencing to subscribers, an enormous amount of network bandwidth is required. In fact, network bandwidth is often the main inhibitor in the effectiveness of such systems.
In order to overcome the constraints imposed by networks, compression systems have emerged. These systems reduce the amount of video and audio data which must be transmitted by removing redundancy in the picture sequence. At the receiving end, the picture sequence is uncompressed and may be displayed in real-time.
One example of an emerging video compression standard is the Moving Picture Experts Group ("MPEG") standard. Within the MPEG standard, video compression is defined both within a given picture and between pictures. Video compression within a picture is accomplished by conversion of the digital image from the time domain to the frequency domain by a discrete cosine transform, quantization, variable length coding, and Huffman coding. Video compression between pictures is accomplished via a process referred to as motion estimation, in which a motion vector plus difference data is used to describe the translation of a set of picture elements (pels) from one picture to another.
The ISO MPEG-2 standard specifies only the syntax of bitstream and semantics of the decoding process. The choice of coding parameters and tradeoffs in performance versus complexity is left to the encoder developers.
One aspect of the MPEG-2 compliant encoding process is calculating the difference between the current and reference macroblocks. This is accomplished in a frame difference unit (FD). Because of specific macroblock encoding algorithms, data to be processed through the frame difference unit arrives in various word lengths and must be formatted such that when used it has the same format as other data. The frame difference unit calculates the difference, that is the difference in luminance and chrominance, between the current macroblock and the best match reference macroblock. Data, that is reference macroblock chrominance and luminance data and current macroblock chrominance and luminance data, to be processed through the frame difference unit arrives in various word lengths and must be formatted such that when used it has the same format as other source data that is used. These various word lengths and formatting requirements impose difficulties in designing storage arrays within the frame difference unit. One preferred approach for formatting macroblock data as well as providing addressing for storage arrays within the frame difference unit is described in commonly assigned, copending U.S. patent application Ser. No. 08/616,328, entitled "OPTIMAL ARRAY ADDRESSING CONTROL STRUCTURE", which is incorporated herein in its entirety.
There remains a need in the art for an enhanced addressing control scheme for a frame difference unit which is capable of writing and reading luminance and chrominance data, at the same time, to and from the predicted array, while maintaining the order of the data written the same as the output order of the data to be sent. Further, the present invention addresses the problem of controlling shared access to the shared-use predicted error array of the frame difference unit.